//
// Class GLMatrix
//
#ifndef GLMATRIX_H
#define GLMATRIX_H

class GLMatrix
{
    private:


    public:
    float mat[16]; // Hm! ? fixme

    GLMatrix(){ loadIdentity(); }

    void loadIdentity(); // loads identity into this
    void multMatrix() const; // multiplies OpenGL matrix with this
    void loadMatrix() const; // Replace OpenGL matrix with this
    void getOpenGlModelview(); // Recieve current matrix from OpenGL

    //void rotate(float angle, float *axis); // Pointer to float[3]?
    void rotate(float angle, float x, float y, float z); // Rotate this matrix using opengl.

    //void translate(float *coord); // Pointer to float[3]?
    void translate(float x, float y, float z);

    //void scale(float *factor); // Pointer to float[3]?
    void scale(float x, float y, float z);

    void debugPrintMat(); // Printf all 16 elements
};
#endif

